在行動應用程式的開發中,To-Do List(待辦事項清單)是一個經典的應用範例,這個應用程式展示了如何設計資料結構、操作清單與項目,以及實現資料的增、刪、改、查功能。本章將指導你如何使用 B4A 來開發一個簡單且實用的 To-Do List 應用程式。
在開發 To-Do List 應用程式之前,首先需要設計一個合適的資料結構來儲存待辦事項。每個待辦事項通常包括以下屬性:
• ID:唯一標識符,用於區分不同的待辦事項。
• Title:待辦事項的標題。
• Description:待辦事項的詳細描述(可選)。
• IsCompleted:標誌待辦事項是否已完成。
可以將這些資料存儲在一個列表中,每個待辦事項都作為一個字典或類別物件來處理。
Type ToDoItem (ID As Int, Title As String, Description As String, IsCompleted As Boolean)
Dim ToDoList As List
ToDoList.Initialize
在這個範例中,我們定義了一個名為 ToDoItem 的類型,並初始化了一個 ToDoList 列表來存儲所有的待辦事項。
接下來,我們將實現對待辦事項的操作,包括新增、刪除、更新和顯示待辦事項。
Sub AddToDoItem(title As String, description As String)
Dim newItem As ToDoItem
newItem.Initialize
newItem.ID = ToDoList.Size + 1
newItem.Title = title
newItem.Description = description
newItem.IsCompleted = False
ToDoList.Add(newItem)
Log("Added: " & newItem.Title)
End Sub
在這個範例中,我們創建了一個新的 ToDoItem 物件,並設置了其標題和描述。ID 是根據目前列表中的項目數量動態生成的。
2. 顯示待辦事項
要顯示待辦事項,我們可以遍歷 ToDoList,並將每個待辦事項的資訊輸出到日誌中或顯示在介面上。
Sub ShowToDoList
For Each item As ToDoItem In ToDoList
Log("ID: " & item.ID & ", Title: " & item.Title & ", Completed: " & item.IsCompleted)
Next
End Sub
這段程式碼將所有待辦事項的 ID、標題和完成狀態輸出到日誌中。
3. 更新待辦事項
有時候,你需要更新待辦事項,例如更改標題或標記為已完成。
Sub UpdateToDoItem(id As Int, newTitle As String, newDescription As String, isCompleted As Boolean)
For Each item As ToDoItem In ToDoList
If item.ID = id Then
item.Title = newTitle
item.Description = newDescription
item.IsCompleted = isCompleted
Log("Updated: " & item.Title)
Exit
End If
Next
End Sub
這段程式碼根據指定的 ID 更新待辦事項的標題、描述和完成狀態。
4. 刪除待辦事項
要刪除待辦事項,可以根據 ID 在列表中找到該項目,然後將其移除。
Sub DeleteToDoItem(id As Int)
For i = 0 To ToDoList.Size - 1
Dim item As ToDoItem = ToDoList.Get(i)
If item.ID = id Then
ToDoList.RemoveAt(i)
Log("Deleted: " & item.Title)
Exit
End If
Next
End Sub
這段程式碼根據待辦事項的 ID 找到並刪除該項目。
To-Do List 應用程式的核心功能是對待辦事項的增、刪、改、查(CRUD)操作。這些操作可以分別通過以下方法來實現。
AddToDoItem("購買牛奶", "記得買全脂牛奶")
ShowToDoList
UpdateToDoItem(1, "購買有機牛奶", "記得買有機全脂牛奶", False)
DeleteToDoItem(1)
以下是一個完整的範例程式,展示了如何將上述功能整合到一個簡單的 To-Do List 應用程式中。
Sub Process_Globals
' 全域變數
End Sub
Sub Globals
Dim ToDoList As List
End Sub
Sub Activity_Create(FirstTime As Boolean)
Activity.LoadLayout("MainLayout")
ToDoList.Initialize
' 測試新增和顯示功能
AddToDoItem("學習B4A", "完成第11章的內容")
AddToDoItem("運動", "晚上去跑步")
ShowToDoList
' 測試更新功能
UpdateToDoItem(1, "學習B4A", "完成第12章的內容", False)
ShowToDoList
' 測試刪除功能
DeleteToDoItem(2)
ShowToDoList
End Sub
Sub AddToDoItem(title As String, description As String)
Dim newItem As ToDoItem
newItem.Initialize
newItem.ID = ToDoList.Size + 1
newItem.Title = title
newItem.Description = description
newItem.IsCompleted = False
ToDoList.Add(newItem)
Log("Added: " & newItem.Title)
End Sub
Sub ShowToDoList
For Each item As ToDoItem In ToDoList
Log("ID: " & item.ID & ", Title: " & item.Title & ", Completed: " & item.IsCompleted)
Next
End Sub
Sub UpdateToDoItem(id As Int, newTitle As String, newDescription As String, isCompleted As Boolean)
For Each item As ToDoItem In ToDoList
If item.ID = id Then
item.Title = newTitle
item.Description = newDescription
item.IsCompleted = isCompleted
Log("Updated: " & item.Title)
Exit
End If
Next
End Sub
Sub DeleteToDoItem(id As Int)
For i = 0 To ToDoList.Size - 1
Dim item As ToDoItem = ToDoList.Get(i)
If item.ID = id Then
ToDoList.RemoveAt(i)
Log("Deleted: " & item.Title)
Exit
End If
Next
End Sub
這個範例展示了如何使用 B4A 創建一個基本的 To-Do List 應用程式。透過這個應用程式,你可以學習如何設計和操作資料結構,實現基本的增、刪、改、查功能,並將這些技能應用到更複雜的應用程式開發中。
參考網址
https://www.b4x.com/teach.html
https://www.b4x.com/learn.html